int ret = -1;
// nums[i] == 0   必须变
// nums[i] == 1   必须不变
void dfs(vector<int>& nums,int pos,int r)
{
    if(pos + 2 == nums.size()){
        if(nums[pos] && nums[pos + 1]  == 1)
            ret = r;
        else{
            ret = -1;
        }
        return;
    }
    if(nums[pos] == 1){
        // 不变
        dfs(nums,pos + 1, r);
    }

    if(nums[pos] == 0){
        // 变
        // nums[pos] = !nums[pos];
        nums[pos + 1] = !nums[pos + 1];
        nums[pos + 2] = !nums[pos + 2];
        dfs(nums,pos + 1, r + 1);
    }
}
class Solution {
public:
    int minOperations(vector<int>& nums) {
        //dfs(nums,0,0);
        
        return ret;
    }
};